package models

import "github.com/mlogclub/simple/sqls"

type UserSimpleResponse struct {
	Id       int64  `json:"id"`
	Type     int    `json:"type"`
	Nickname string `json:"nickname"`
	Avatar   string `json:"avatar"`
	Email    string `json:"email"`
	Username string `json:"username"`
}

// 聊天好友申请表
type RequestListResponse struct {
	List   []ChatFriendsRequestResponse `json:"list" form:"list"`
	Paging *sqls.Paging
}

// 聊天好友申请表
type ChatFriendsRequestResponse struct {
	ModelBase
	SenderUserId       int64  `gorm:"column:sender_user_id" json:"senderUserId" form:"senderUserId"`            // 发送用户id
	SenderUserNickname string `gorm:"column:user_nickname" json:"senderUserNickname" form:"senderUserNickname"` // 发送用户
	SenderUserAvatar   string `gorm:"column:user_avatar" json:"senderUserAvatar" form:"senderUserAvatar"`       // 发送用户头像
	SenderUserEmail    string `gorm:"column:user_email" json:"senderUserEmail" form:"senderUserEmail"`          // 发送用户邮箱
	SenderUsername     string `gorm:"column:username" json:"senderUserName" form:"senderUserName"`              // 发送用户名
	ReceiverUserId     int64  `gorm:"column:receiver_user_id" json:"receiverUserId" form:"receiverUserId"`      // 接收用户id
	Status             int    `gorm:"column:status" json:"status" form:"status"`                                // 状态 // 'sent', 'accepted', 'rejected', 'canceled'
	Message            string `gorm:"column:message" json:"message" form:"message"`                             // 消息
}

// 我的好友申请列表
type MyRequestListResponse struct {
	List   []MyRequestResponse `json:"list" form:"list"`
	Paging *sqls.Paging
}

// 聊天好友申请表
type MyRequestResponse struct {
	ModelBase
	SenderUserId         int64  `gorm:"column:sender_user_id" json:"senderUserId" form:"senderUserId"`                // 发送用户id
	ReceiverUserId       int64  `gorm:"column:receiver_user_id" json:"receiverUserId" form:"receiverUserId"`          // 接收用户id
	ReceiverUserNickname string `gorm:"column:user_nickname" json:"receiverUserNickname" form:"receiverUserNickname"` // 发送用户
	ReceiverUserAvatar   string `gorm:"column:user_avatar" json:"receiverUserAvatar" form:"receiverUserAvatar"`       // 发送用户头像
	ReceiverUserEmail    string `gorm:"column:user_email" json:"receiverUserEmail" form:"receiverUserEmail"`          // 发送用户邮箱
	ReceiverUsername     string `gorm:"column:username" json:"receiverUserName" form:"receiverUserName"`              // 发送用户名
	Status               int    `gorm:"column:status" json:"status" form:"status"`                                    // 状态 // 'sent', 'accepted', 'rejected', 'canceled'
	Message              string `gorm:"column:message" json:"message" form:"message"`                                 // 消息
}

// 好友列表
type ChatFirendListResponse struct {
	List   []ChatFriendResponse `json:"list" form:"list"`
	Paging *sqls.Paging
}

// 我的好友
type ChatFriendResponse struct {
	ModelBase
	UserId         int64  `gorm:"not null" json:"userId" form:"userId"`                             // 用户id
	FriendId       int64  `gorm:"not null" json:"friendId" form:"friendId"`                         // 好友id
	FriendNickname string `gorm:"column:user_nickname" json:"friendNickname" form:"friendNickname"` // 发送用户
	FriendAvatar   string `gorm:"column:user_avatar" json:"friendAvatar" form:"friendAvatar"`       // 发送用户头像
	FriendEmail    string `gorm:"column:user_email" json:"friendEmail" form:"friendEmail"`          // 发送用户邮箱
	FriendName     string `gorm:"column:username" json:"friendName" form:"friendName"`              // 发送用户名
	Status         int    `gorm:"type:int(11);" json:"status" form:"status"`                        // 状态, 1 好友，2拉黑
}

// 好友列表
type ChatGroupsMembersListResponse struct {
	List   []ChatGroupsMembersResponse `json:"list" form:"list"`
	Paging *sqls.Paging
}

// 我的好友
type ChatGroupsMembersResponse struct {
	ModelBase
	GroupId      int64  `gorm:"not null" json:"groupId" form:"groupId"`                       // 群组Id
	GroupName    string `gorm:"size:255" json:"groupName" form:"groupName"`                   // 群角色
	RoleId       int    `gorm:"not null" json:"roleId" form:"roleId"`                         // 角色Id
	RoleName     string `gorm:"-" json:"roleName" form:"roleName"`                            // 角色
	UserId       int64  `gorm:"not null" json:"userId" form:"userId"`                         // 用户Id
	UserNickname string `gorm:"column:user_nickname" json:"userNickname" form:"userNickname"` // 昵称
	UserAvatar   string `gorm:"column:user_avatar" json:"userAvatar" form:"userAvatar"`       // 头像
	UserEmail    string `gorm:"column:user_email" json:"userEmail" form:"userEmail"`          // 邮箱
	Username     string `gorm:"column:username" json:"username" form:"username"`              // 用户名
	Status       int    `gorm:"type:int(11);" json:"status" form:"status"`                    // 状态, 1 好友，2拉黑
}

// 聊天好友
type ChatFriendInfo struct {
	UserId         int64  `gorm:"column:user_id" json:"userId" form:"userId"`                         // 用户id
	FriendId       int64  `gorm:"column:friend_id" json:"friendId" form:"friendId"`                   // 好友id
	FriendNickname string `gorm:"column:friend_nickname" json:"friendNickname" form:"friendNickname"` // 好友昵称
}

// 聊天好友申请表
type FriendMessageListResponse struct {
	List   []FriendMessageResponse `json:"list" form:"list"`
	Paging *sqls.Paging
}

// 聊天好友消息
type FriendMessageResponse struct {
	ModelBase
	SenderUserId         int64  `gorm:"column:sender_user_id" json:"senderUserId" form:"senderUserId"`                         // 发送用户id
	SenderUserNickname   string `gorm:"column:sender_user_nickname" json:"senderUserNickname" form:"senderUserNickname"`       // 发送用户
	SenderUserAvatar     string `gorm:"column:sender_user_avatar" json:"senderUserAvatar" form:"senderUserAvatar"`             // 发送用户头像
	ReceiverUserId       int64  `gorm:"column:receiver_user_id" json:"receiverUserId" form:"receiverUserId"`                   // 接收用户id
	ReceiverUserNickname string `gorm:"column:receiver_user_nickname" json:"receiverUserNickname" form:"receiverUserNickname"` // 接收用户id
	ReceiverUserAvatar   string `gorm:"column:receiver_user_avatar" json:"receiverUserAvatar" form:"receiverUserAvatar"`       // 接收用户id
	Types                int    `gorm:"column:types" json:"types" form:"types"`                                                // 消息类型
	Content              string `gorm:"column:content" json:"content" form:"content"`                                          // 消息
	ImageUrl             string `gorm:"column:image_url" json:"imageUrl" form:"imageUrl"`                                      // 图片地址
}

type Result struct {
	Result bool `json:"result"`
}

// 未读消息统计返回
type FriendMessageUnReadCountResponse struct {
	FriendId       int    `gorm:"column:friend_id" json:"friendId" form:"friendId"`
	FriendNickname string `gorm:"column:friend_nickname" json:"friendNickname" form:"friendNickname"`
	FriendAvatar   string `gorm:"column:friend_avatar" json:"friendAvatar" form:"friendAvatar"`
	MessageCount   int    `gorm:"column:message_count" json:"messageCount" form:"messageCount"`
}
